package com.ztorn.fiscale.service;

import java.util.List;
import com.ztorn.fiscale.domain.FiscaleDocumentRelation;
import com.ztorn.fiscale.domain.FiscaleDocument;

/**
 * 单证关联Service接口
 * 
 * @author ztorn
 */
public interface IFiscaleDocumentRelationService 
{
    /**
     * 查询单证关联
     * 
     * @param relationId 单证关联ID
     * @return 单证关联
     */
    public FiscaleDocumentRelation selectFiscaleDocumentRelationById(Long relationId);

    /**
     * 查询单证关联列表
     * 
     * @param fiscaleDocumentRelation 单证关联
     * @return 单证关联集合
     */
    public List<FiscaleDocumentRelation> selectFiscaleDocumentRelationList(FiscaleDocumentRelation fiscaleDocumentRelation);

    /**
     * 查询单证的关联单证列表
     * 
     * @param documentId 单证ID
     * @return 关联单证集合
     */
    public List<FiscaleDocument> selectRelatedDocumentList(Long documentId);

    /**
     * 新增单证关联
     * 
     * @param fiscaleDocumentRelation 单证关联
     * @return 结果
     */
    public int insertFiscaleDocumentRelation(FiscaleDocumentRelation fiscaleDocumentRelation);

    /**
     * 修改单证关联
     * 
     * @param fiscaleDocumentRelation 单证关联
     * @return 结果
     */
    public int updateFiscaleDocumentRelation(FiscaleDocumentRelation fiscaleDocumentRelation);

    /**
     * 批量删除单证关联
     * 
     * @param relationIds 需要删除的单证关联ID
     * @return 结果
     */
    public int deleteFiscaleDocumentRelationByIds(Long[] relationIds);

    /**
     * 删除单证关联信息
     * 
     * @param relationId 单证关联ID
     * @return 结果
     */
    public int deleteFiscaleDocumentRelationById(Long relationId);
    
    /**
     * 批量添加单证关联
     * 
     * @param documentId 单证ID
     * @param relatedDocumentIds 关联单证ID数组
     * @return 结果
     */
    public int batchAddDocumentRelations(Long documentId, Long[] relatedDocumentIds);
}